#include "bsp_wdog.h"

/**
 * 配置并开启独立看门狗（Independent Watchdog，IWDG）
 *
 * 此函数用于配置独立看门狗的重载值和预分频系数，并开启看门狗功能
 * 独立看门狗使用内部40KHz低速时钟（IRC40K），在系统出现异常时，可以复位系统
 *
 * @param reload_value 重载值，看门狗计数到此值时将产生复位
 * @param prescaler_div 预分频系数，用于设置看门狗的计数频率
 */
void drive_fwdgt_config(uint16_t reload_value, uint8_t prescaler_div) {
	// 开启内部40K时钟
	rcu_osci_on(RCU_IRC40K);

	// 等待时钟稳定
	while (SUCCESS != rcu_osci_stab_wait(RCU_IRC40K)) {
	}

	// 配置看门狗参数
	fwdgt_config(reload_value, prescaler_div);

	// 开启看门狗
	fwdgt_enable();
}

/*!
* 看门狗喂狗函数
*/
void Feed_fwdgt(void) {
	// 重装载计数器
	fwdgt_counter_reload();
}










